home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 1 / CU Amiga Magazine CD-ROM Special Edition (1995)(EMAP Images)(GB)[Issue 1995-11].iso / Aminet / misc / sci / ElectroCAD.lha / AUTOEXEC.AMOS / AUTOEXEC.amosSourceCode next >
AMOS Source Code  |  1995-06-13  |  46KB  |  1,295 lines

  1. Rem *****************************************  
  2. Rem **                                     **  
  3. Rem **   Electro Cad.  Amiga Vertion 1.0   **
  4. Rem **                                     **
  5. Rem **  By Derek Pell.  Started  24/07/90  **  
  6. Rem **                                     **
  7. Rem **                  Finished 02/01/90  **
  8. Rem **                                     **
  9. Rem *****************************************  
  10. '
  11. '
  12. Break Off : Auto View Off 
  13. Close Workbench : Erase 1
  14. Dir$="ElectroCad:" : Change Mouse 3
  15. Screen Open 7,640,26,16,Hires : Curs Off 
  16. Screen Open 6,810,180,4,Hires : Curs Off 
  17. For N=0 To 5
  18. Screen Open N,640,256,4,Hires : Curs Off 
  19. Next 
  20. For N=0 To 6
  21. Screen Display N,130,44,, : Screen N : Cls 0 : Next 
  22. Screen Display 7,130,16,, : Screen 7
  23. Auto View On 
  24. Load Iff "ElecAcs/Icon_Bar.Iff"
  25. Load "ElecAcs/Symbol_elec.abk"
  26. Ink 2,0, : Screen 0
  27. Menu$(1)=" Trashcan " : Menu Static(1)
  28. Menu$(1,1)=" Clear Screen Ok!  " : Menu Static(1,1)
  29. Menu$(1,2)=" Erase a Schematic " : Menu Static(1,2)
  30. Menu$(2)=" Load " : Menu Static(2)
  31. Menu$(2,1)=" Load a Schematic " : Menu Static(2,1)
  32. Menu$(3)=" Save " : Menu Static(3)
  33. Menu$(3,1)=" Save Schematic " : Menu Static(3,1)
  34. Menu$(4)=" Print " : Menu Static(4)
  35. Menu$(4,1)=" Print Schematic " : Menu Static(4,1)
  36. Menu$(5)=" Move " : Menu Static(5)
  37. Menu$(5,1)=" Move Schematic " : Menu Static(5,1)
  38. Menu$(6)=" Colour " : Menu Static(6)
  39. Menu$(6,1)="(IN 0,0)(BA 98,8)" : Menu Static(6,1)
  40. Menu$(6,2)="(IN 0,1)(BA 98,8)" : Menu Static(6,2)
  41. Menu$(6,3)="(IN 0,2)(BA 98,8)" : Menu Static(6,3)
  42. Menu$(6,4)="(IN 0,3)(BA 98,8)" : Menu Static(6,4)
  43. Menu$(7)=" Shape " : Menu Static(7)
  44. Menu$(7,1)=" Box     " : Menu Static(7,1)
  45. Menu$(7,2)=" Circle  " : Menu Static(7,2)
  46. Menu$(7,3)=" Ellipse " : Menu Static(7,3)
  47. Menu$(8)=" Symbol " : Menu Static(8)
  48. Menu$(8,1)=" Flip Horiz.  " : Menu Static(8,1)
  49. Menu$(8,2)=" Flip Vert.   " : Menu Static(8,2)
  50. Menu$(8,3)=" Vert/Horiz.  " : Menu Static(8,3)
  51. Menu$(8,4)=" Load Custom  " : Menu Static(8,4)
  52. Menu$(8,5)=" Grab a Brush " : Menu Static(8,5)
  53. Menu$(8,6)=" Load a Brush " : Menu Static(8,6)
  54. Menu$(8,7)=" Save a Brush " : Menu Static(8,7)
  55. Menu$(9)=" Zoom " : Menu Static(9)
  56. Menu$(9,1)=" Zoom In  " : Menu Static(9,1)
  57. Menu$(9,2)=" Restore  " : Menu Static(9,2)
  58. Menu$(10)=" Prefs " : Menu Static(10)
  59. Menu$(10,1)=" Coordinates " : Menu Static(10,1)
  60. Menu$(10,2)=" Targeting   " : Menu Static(10,2)
  61. Menu$(10,3)=" Set RGB     " : Menu Static(10,3)
  62. Menu$(10,4)=" Invert      " : Menu Static(10,4)
  63. Menu$(10,5)=" Exit System " : Menu Static(10,5)
  64. On Menu Proc TRASH,LOD,SAV,PRIN,MOVE,CHANGE,SHAPE,SYMBOL,ZOM,PREFS
  65. On Menu On 
  66. MFO=7 : MENOFF
  67. MFO=$E : MENOFF
  68. For N=6 To 0 Step -1
  69. Screen N : Get Sprite Palette : Flash Off 
  70. Next 
  71. Dim SI(69) : SI$="111112222233333444445555566666777778888899999AAAAABBBBBCCCCCDDDDDEEEEE"
  72. SC$="1111111111111111111111111111111111111111222222222233333444445555566666"
  73. Dim WIN(29,10) : Dim P$(4) : Dim YN$(2) : C$="   Cancel   "
  74. Dim CLR(3) : Dim BCL(3) : Dim RGB(2) : Dim CUS$(15)
  75. For N=0 To 3 : BCL(N)=Colour(N) : Next 
  76. For N=0 To 69 : SI(N)=Val("$"+Mid$(SI$,N+1,1)) : Next 
  77. For N=0 To 28 : WIN(N,2)=1 : WIN(N,3)=2 : WIN(N,4)=3 : WIN(N,5)=4 : Next 
  78. For N=0 To 14 : WIN(N,9)=5 : Next : For N=15 To 29 : WIN(N,9)=6 : Next 
  79. Reserve Zone 10
  80. Screen To Back 0 : Wind Open 1,360,30,32,13,1 : Curs Off 
  81. '-------ff=1 ???-----------before f=0 next line
  82. F=0 : MOVESCR : N=0 : Screen To Front 0 : Screen To Front 7 : Screen 0
  83. O=1 : ICON_BAR : IK=1
  84. Gosub LIM1
  85. Global C1,C2,C3,CT$,CUS$(),SI$,SC$,CS$,MP,LCS,RBE,FX,ZQ
  86. Global K,O,F,N,Q,J,Z,I#,C,M,CO,CF,TR,IK,SH,HS,HF,BF,LB,LW,MU,WC,CL,ZS,SX,XS,SY,YS,GX,GY,XG,YG,GF,TW,WT,FH,FF,SF,BFH,LIK
  87. Global SCX,SCY,COM,SF,RUB,RST,MFO,LR,FULL,ZIRO,SI(),WIN(),CLR(),BCL(),RGB(),C$,D$,F$,X$,Y$,RGB$,LAB$,LAH$,YN$(),P$()
  88. CS$="ElectroCad:ElecAcs/Symbol_elec.abk"
  89. Change Mouse 1 : MP=1
  90. MAIN_LOOP:
  91. While Mouse Zone=0
  92.    XX=X : YY=Y : X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  93.    If XX<>X or YY<>Y
  94.    If BF=1 and Mouse Zone<>1 : Wait Vbl : Bob 1,X,Y,I# : End If 
  95.    If CO=1 : CO_ORS : End If 
  96.    End If 
  97. '--------------------------- Lay a Conponant ----------------------- 
  98.    If BF=1 and Mouse Zone<>1 and Mouse Key=1 and RUB=0
  99.    If I#=96 or I#=97 : Ink 0,, : Draw X Bob(1)+3,Y Bob(1)+2 To X Bob(1)+5,Y Bob(1)+2 : Ink IK,, : End If 
  100.    Put Bob 1 : Bell(50)
  101.    If IK=0
  102.    BASE=Sprite Base(I#)
  103.    SXG=Deek(BASE)*16 : SYG=Deek(BASE+2)
  104.    Screen Copy 0,X,Y,X+SXG,Y+SYG To 0,X,Y,96
  105.    Wait Vbl : Bob 1,X,Y,I# : End If 
  106.    Repeat 
  107.    XX=X : YY=Y : X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  108.    If XX<>X or YY<>Y : Wait Vbl : Bob 1,X,Y,I# : End If 
  109.    Until Mouse Key=0
  110.    End If 
  111. '------------------------------------------------------------------- 
  112.    If RUB=1 and Z=0
  113.    Bob 1,X,Y,1
  114.    If Mouse Key=1
  115.    Bob Off 1 : Wait Vbl : Bar X-1,Y To X+23,Y+8
  116.    Bob 1,X,Y,1 : Wait Vbl 
  117.    End If 
  118.    End If 
  119.    If(HF+BF)=0 Then Show On : HF=1
  120. '------------------------------------------------------------------- 
  121.    If Key State(89)=True Then J=2 : ICON_BAR
  122.    If Key State(79)=-1 and SCX>0 : F=1 : MOVESCR : Add SCX,-40 : Q=1 : End If 
  123.    If Key State(78)=-1 and SCX<640 : F=1 : MOVESCR : Add SCX,40 : Q=1 : End If 
  124.    If Key State(76)=-1 and SCY>0 : F=1 : MOVESCR : Add SCY,-16 : Q=1 : End If 
  125.    If Key State(77)=-1 and SCY<256 : F=1 : MOVESCR : Add SCY,16 : Q=1 : End If 
  126.    If Q=1 Then F=0 : MOVESCR : Q=0 : X=0
  127.    If Mouse Key=2 and O=1 Then Bob Off 1 : MENUCON : X=0
  128.    If Mouse Key=2 and J<>2 Then J=1 : Bob Off 1 : ICON_BAR : MENUCON : X=0
  129.    If Mouse Key<>2 and J=1 and O=1 Then ICON_BAR : J=0
  130.    If Mouse Zone=1 and O=0 or J=1 Then Bob Off 1
  131.    If Key State(68)=-1 and RUB=0
  132.       F=1 : MOVESCR : Z=0 : X=0
  133.       If WT=11 or WT=12 : Swap COM,WT : WT=0 : End If 
  134.       If GF=1
  135.       Change Mouse 3 : Show On : HF=1 : Erase 1
  136.       Load CS$
  137.       Hide On : HF=0 : Change Mouse MP : CF=0 : GF=0 : Z=0 : FH=1
  138.       If Len(LAB$+LAH$)=0 : FH=0 : End If 
  139.       If COM=11 or COM=12 or COM=3 and LCS>0 or COM=4 and LCS>0
  140.       Swap BF,ZIRO : ZIRO=0
  141.       Else 
  142.       Swap BF,BFH : BFH=0 : End If 
  143.       If LR>0 : LB=LR : End If 
  144.       Swap RUB,RBE : I#=LB : Bob Off 1 : Wait Vbl 
  145.       MFO=$A : MENON
  146.       MFO=$E : MENOFF
  147.       On COM-10 Proc PECIL,PECIL,TEXP,RUBER
  148.       BOCOL
  149.       If BF=0 : Change Mouse MP : Show On : HF=1 : End If 
  150.       Else 
  151.       I#=0 : Bob Off 1 : Show On : HF=1 : BF=0 : COM=0
  152.       End If : End If 
  153.    If Key State(68)=-1 and RUB=1
  154.    RUB=0 : Ink IK,, : Wait 5
  155.    If I#=0
  156.    BF=0 : Bob Off 1 : Show On : HF=1
  157.    Else 
  158.    Bob 1,,,I#
  159.    End If : End If 
  160.    CHSMS
  161. Wend : SLEICON : Goto MAIN_LOOP
  162. Rem Turn Icon Bar On/Off :When off menu to be activated
  163. Procedure CO_ORS
  164.    X$=Str$(X Screen(X Mouse)+SCX) : X$=Right$(X$,Len(X$)-1)
  165.    Y$=Str$(Y Screen(Y Mouse)+SCY) : Y$=Right$(Y$,Len(Y$)-1)
  166.    While Len(X$)<4 : X$="0"+X$ : Wend 
  167.    While Len(Y$)<4 : Y$="0"+Y$ : Wend 
  168.    Screen 7 : Text 595,10,X$ : Text 595,22,Y$ : Screen 0
  169. End Proc
  170. Procedure MOVESCR
  171.        If CO=1 Then CO_ORS
  172.        If BF=1 or RUB=1 Then Bob Off 1 : Wait Vbl 
  173.        If F=1 Then Goto MOVIT : Rem Put Back 
  174.        Rem Move Screen  
  175. SETEM: If SCX>0 or SCX<640 Then SX=SCX Else SX=0
  176.        If SCY>0 or SCY<256 Then SY=SCY Else SY=0
  177.        XS=640-SX : YS=256-SY
  178. '------------------------------------------------------------------- 
  179. MOVIT: If F=1 and SX=640 Then SX=0
  180.        If F=1 and SY=256 Then SY=0
  181.        If SCX<640 and SCY<256
  182.        If F=1
  183.        Screen Copy 0,0,0,XS,YS To 1,SX,SY
  184.        Else 
  185.        Screen Copy 1,SX,SY,640,256 To 0,0,0
  186.        End If 
  187.        End If 
  188. '------------------------------------------------------------------- 
  189.        If SCX>0 and SCY<256
  190.        If F=1
  191.        Screen Copy 0,XS,0,640,YS To 2,0,SY
  192.        Else 
  193.        Screen Copy 2,0,SY,SX,256 To 0,XS,0
  194.        End If 
  195.        End If 
  196. '------------------------------------------------------------------- 
  197.        If SCX<640 and SCY>0
  198.        If F=1
  199.        Screen Copy 0,0,YS,XS,256 To 3,SX,0
  200.        Else 
  201.        Screen Copy 3,SX,0,640,SY To 0,0,YS
  202.        End If 
  203.        End If 
  204. '------------------------------------------------------------------- 
  205.        If SCX>0 and SCY>0
  206.        If F=1
  207.        Screen Copy 0,XS,YS,640,256 To 4,0,0
  208.        Else 
  209.        Screen Copy 4,0,0,SX,SY To 0,XS,YS
  210.        End If 
  211.        End If 
  212. '------------------------------------------------------------------- 
  213. End Proc
  214. Procedure STORSCR
  215. If F=0
  216. Wait Vbl 
  217. Screen Copy 5,0,0,640,256 To 0,0,0
  218. Screen 5 : Cls 0 : Screen 0
  219. Else 
  220. Screen Copy 0,0,0,640,256 To 5,0,0
  221. End If 
  222. End Proc
  223. Procedure STORWIN
  224.    If F=0
  225.       Screen Copy 5,360,30,617,134 To 0,360,30
  226.       Screen 5 : Cls 0 : Screen 0 : Show On : HF=1
  227.    Else 
  228.       Screen Copy 0,360,30,617,134 To 5,360,30
  229.    End If 
  230. End Proc
  231. Procedure SLEICON
  232.       Bob Off 1 : Show On : HF=1
  233.       If RUB=1 : RUB=0 : Ink IK,, : Wait 5
  234.       If I#=0 : BF=0 : End If : End If 
  235. SLEI: While Mouse Zone=1
  236.       If Key State(89)=True Then J=2 : ICON_BAR
  237.       If CO=1 : CO_ORS : End If 
  238.       If X Mouse<413
  239.       N=Int((X Screen(X Mouse)-9)/8)
  240.       If N<0 : N=0 : End If 
  241.       Else 
  242.       Pop Proc : End If 
  243.       If Mouse Key=1 or Mouse Key=2 Then Goto MAKC
  244.       Wend : If BF=1 Then Hide On : HF=0
  245.       Pop Proc
  246. MAKC: COM=SI(N)
  247.       If RUB=1 Then RUB=0
  248.       Wait 15 : PWIND
  249.       Goto SLEI
  250. End Proc
  251. Procedure CHECKICON
  252.       If X Mouse<413
  253.       N=Int((X Screen(X Mouse)-9)/8)
  254.       If N<0 : N=0 : End If 
  255.       Else 
  256.       N=-1 : End If 
  257. End Proc
  258. Procedure ICON_BAR
  259.    If O=0
  260.    Reset Zone 
  261.    For P=44 To 16 Step -3
  262.    Wait Vbl : Screen Display 7,130,P,, : Next 
  263.    O=2
  264.    Else 
  265.    Set Zone 1,0,0 To 640,18
  266.    If Key State(89)=-1 : J=0 : End If 
  267.    For P=16 To 44 Step 3
  268.    Wait Vbl : Screen Display 7,130,P,, : Next 
  269.    O=0
  270.    If CO=0 : Screen 7 : Text 595,10,"    "
  271.    Text 595,22,"    " : Screen 0 : End If 
  272.    End If 
  273.    If O=2 Then O=1
  274.    Repeat : Until Key State(89)=0
  275. End Proc
  276. Procedure MENUCON
  277.    Limit Mouse 128,46 To 448,299
  278.    Change Mouse 1
  279.    If COM=13 or COM=5 and LCS>0 Then F=1 : STORWIN
  280.    Wait Vbl 
  281.    Show On : HF=1 : Bell(50)
  282.    Menu On 
  283. '-----------------------------goto menu ops here-----------------
  284.    TIME=Timer
  285.    Do 
  286.       If Mouse Key<>2 and(Timer-TIME)>1 Then Exit 
  287.    Loop 
  288. '-----------------------------reset for next time----------------
  289.    On Menu On 
  290.    MU=0 : Menu Off 
  291.    If RUB=1 or BF=1 Then Hide On : HF=0
  292.    If LW=0 Then Change Mouse MP
  293.    If MP=2 Then Show On : HF=1
  294.    If COM=13 or COM=5 and LCS>0 Then F=0 : STORWIN
  295.    Gosub LIM1
  296. End Proc
  297. Procedure MENOFF
  298. On MFO+1 Gosub MFO0,MFO1,MFO2,MFO3,MFO4,MFO5,MFO6,MFO7,MFO8,MFO9,MFOA,MFOB,MFOC,MFOD,MFOE,MFOF
  299. End Proc
  300. Procedure MENON
  301. On MFO+1 Gosub MFN0,MFN1,MFN2,MFN3,MFN4,MFN5,MFN6,MFN7,MFN8,MFN9,MFNA,MFNB,MFNC,MFND,MFNE,MFNF
  302. End Proc
  303. MFO0: Menu Inactive(1,1) : Return : Rem CLS
  304. MFO1: Menu Inactive(1,2) : Return : Rem ERASE
  305. MFO2: Menu Inactive(2,1) : Return : Rem LOAD 
  306. MFO3: Menu Inactive(3,1) : Return : Rem SAVE 
  307. MFO4: Menu Inactive(4,1) : Return : Rem PRINT  
  308. MFO5: Menu Inactive(5,1) : Return : Rem MOVE 
  309. MFO6: Menu Inactive(9,1) : Return : Rem ZOOM 
  310. MFO7: Menu Inactive(9,2) : Return : Rem RESTORE
  311. MFO8: Menu Inactive(8,1) : Return : Rem H FLIP 
  312. MFO9: Menu Inactive(8,2) : Return : Rem V FLIP 
  313. MFOA: Menu Inactive(8,3) : Return : Rem V/H
  314. MFOB: Menu Inactive(8,4) : Return : Rem LOAD CUS 
  315. MFOC: Menu Inactive(8,5) : Return : Rem GRAB 
  316. MFOD: Menu Inactive(8,6) : Return : Rem LOAD B 
  317. MFOE: Menu Inactive(8,7) : Return : Rem SAVE B 
  318. MFOF: Menu Inactive(10,4) : Return : Rem INVERT 
  319. '--------------------------------------------------
  320. MFN0: Menu Active(1,1) : Return 
  321. MFN1: Menu Active(1,2) : Return 
  322. MFN2: Menu Active(2,1) : Return 
  323. MFN3: Menu Active(3,1) : Return 
  324. MFN4: Menu Active(4,1) : Return 
  325. MFN5: Menu Active(5,1) : Return 
  326. MFN6: Menu Active(9,1) : Return 
  327. MFN7: Menu Active(9,2) : Return 
  328. MFN8: Menu Active(8,1) : Return 
  329. MFN9: Menu Active(8,2) : Return 
  330. MFNA: Menu Active(8,3) : Return 
  331. MFNB: Menu Active(8,4) : Return 
  332. MFNC: Menu Active(8,5) : Return 
  333. MFND: Menu Active(8,6) : Return 
  334. MFNE: Menu Active(8,7) : Return 
  335. MFNF: Menu Active(10,4) : Return 
  336. Procedure CHSMS
  337.    If Z=1 Then ZOMIN
  338.    If Z=2 Then GRAB
  339. End Proc
  340. Procedure PWIND
  341.       Inc C
  342. RSTA: If Z=0 and COM<>13 or GF=1 and MU=0
  343.       F=1 : MOVESCR
  344.       Else 
  345.       F=1 : STORSCR : End If 
  346.       If LCS=0 and COM<11 or MU=1
  347.       Window 1 : Paper 3 : Pen 1 : Clw : Title Top "Electro Cad V1.2"
  348.       End If 
  349.       If LCS>0 and COM=1
  350.       Window 1 : Paper 3 : Pen 1 : Clw : Title Top "Electro Cad V1.2"
  351.       End If 
  352.       If MU=1 Then Pop Proc
  353.       If GF=1 and MU=0
  354.       Change Mouse 3 : Z=0 : Erase 1
  355.       Load CS$
  356. '      GF=0 : BF=0 : Z=-1
  357.       If LR>0 : LB=LR : End If 
  358.       Swap RUB,RBE : GF=0 : I#=LB : If I#<1 : BF=0 : End If 
  359.       MFO=$A : MENON
  360.       MFO=$E : MENOFF
  361.       If Mouse Zone=0 : Hide On : HF=0 : End If 
  362.       Change Mouse MP
  363.       End If 
  364.       If LCS=0
  365.       On COM Proc RESIS,CAP,DIODE,TRAN,IC,OPTIC,COIL,SWITCH,CONECT,MIS,PECIL,PECIL,TEXP,RUBER
  366.       If COM>0 and COM<11 : COMSHOW : LB=I# : LR=0 : FX=0 : BOCOL
  367.       If I#=0 : BF=0 : End If 
  368.       Bob Off 1 : F=0 : MOVESCR
  369.       Else 
  370.       F=0 : MOVESCR
  371.       End If : Else 
  372.       On COM Proc CUSTOM,EXXIT,PECIL,PECIL,TEXP,RUBER
  373.       If COM=1 : COMSHOW : LB=I# : LR=0 : BOCOL
  374.       If I#=0 : BF=0 : End If 
  375.       Bob Off 1 : F=0 : MOVESCR
  376.       Else 
  377.       F=0 : MOVESCR
  378.       End If : End If 
  379.       If ZQ=3
  380.       If COM>10 : ZQ=0 : End If 
  381.       Wait Vbl : Goto RSTA : End If 
  382.       If C>1 Then C=0
  383.       If C=1 and RUB=1 Then RUB=0 : Ink IK
  384.       While Mouse Zone=1
  385.       If Mouse Key : Pop Proc : End If 
  386.       Wend 
  387. End Proc
  388. Procedure BOCOL
  389.    If IK<>LIK
  390.    If IK>1 and I#>1 or GF=1 and IK>0
  391.       Screen 5 : Cls IK
  392.       Paste Bob 0,0,I#
  393.       Screen 6 : Paste Bob 410,0,I#
  394.       Wait Vbl 
  395.       Ink IK : Bar 0,0 To 409,180
  396.       BASE=Sprite Base(I#)
  397.       X=Deek(BASE)*16 : Y=Deek(BASE+2)
  398.       Screen Copy 6,410,0,410+X,Y To 6,0,0,96
  399.       Screen Copy 6,0,0,X,Y To 5,0,0,96
  400.       If GF=0 : Get Bob 5,300,0,0 To X,Y
  401.       I#=300 : End If 
  402.       If GF=1 : Get Bob 5,1,0,0 To X,Y : End If 
  403.       Cls 0 : Screen 5 : Cls 0 : Screen 0 : Rem Inc SF 
  404.    End If 
  405.    If I#=300 and IK<2
  406.       I#=LB
  407.    End If 
  408.    End If 
  409. End Proc
  410. Procedure COMSHOW
  411.       If ZQ=1 Then ZQ=0 Else Bell(50)
  412.       BF=1 : Window 1 : Locate 1,1 : Print CT$
  413.       I#=C1 : While COM=C2 and Mouse Zone=1
  414.       CHECKICON : If N=-1 Then Pop Proc
  415.        COM=SI(N)
  416.       If Mouse Key=1
  417.       I#=I#+2 : If I#>C3 : I#=C1+2 : End If 
  418.       Bob 1,400,58,I#
  419.       If LCS=0 : COMDAT Else CUSDAT : End If 
  420.       Bell(50) : Wait 10 : End If 
  421.       If Mouse Key=2
  422.       I#=I#-2 : If I#<C1+2 : I#=C3 : End If 
  423.       Bob 1,400,58,I#
  424.       If LCS=0 : COMDAT Else CUSDAT : End If 
  425.       Bell(50) : Wait 10 : End If 
  426.       Wend : If I#=C1 and RUB=0 Then I#=LB
  427. End Proc
  428. Procedure CUSTOM
  429. C1=0 : C2=1 : C3=LCS*2
  430. End Proc
  431. Procedure EXXIT
  432. Bell(50) : CS$="ElectroCad:ElecAcs/Symbol_Elec.Abk"
  433. Change Mouse 3
  434. ICON_BAR
  435. Screen 7 : Load Iff "ElectroCad:ElecAcs/Icon_Bar.Iff" : Screen 0
  436. Erase 1 : Load CS$
  437. For N=0 To 69 : SI(N)=Val("$"+Mid$(SI$,N+1,1)) : Next 
  438. ICON_BAR
  439. Change Mouse MP : BF=0 : I#=0 : LCS=0
  440. End Proc
  441. Procedure RESIS
  442. CT$="Resistors" : C1=0 : C2=1 : C3=8
  443. End Proc
  444. Procedure CAP
  445. CT$="Capacitors" : C1=8 : C2=2 : C3=18
  446. End Proc
  447. Procedure DIODE
  448. CT$="Diodes and Rectifiers" : C1=18 : C2=3 : C3=36
  449. End Proc
  450. Procedure TRAN
  451. CT$="Transistors" : C1=36 : C2=4 : C3=56
  452. End Proc
  453. Procedure IC
  454. CT$="Intergrated Circuits" : C1=56 : C2=5 : C3=96
  455. End Proc
  456. Procedure OPTIC
  457. CT$="Optical Electronics" : C1=96 : C2=6 : C3=130
  458. End Proc
  459. Procedure COIL
  460. CT$="Inductors & Transfomers" : C1=130 : C2=7 : C3=158
  461. End Proc
  462. Procedure SWITCH
  463. CT$="Switches & Relaies" : C1=158 : C2=8 : C3=190
  464. End Proc
  465. Procedure CONECT
  466. CT$="Connectors" : C1=190 : C2=9 : C3=234
  467. End Proc
  468. Procedure MIS
  469. CT$="Miscellaneous Components" : C1=234 : C2=10 : C3=270
  470. End Proc
  471. Procedure PECIL
  472.       Bob Off 1 : Bell(50)
  473. MZON: Change Mouse 1 : Show On : HF=1
  474.       If Z=0 Then Swap BF,ZIRO
  475.       Repeat : Until Mouse Key=0
  476.       While Mouse Zone=1
  477.       If CO=1 : CO_ORS : End If 
  478.       If Mouse Key Then MP=1 : CF=0 : FH=0 : Pop Proc
  479.       Wend : Change Mouse 2 : MP=2
  480. '------------------------------------------------------------------- 
  481.       F=1 : MOVESCR : M=1
  482. ZOIN: Do 
  483.       If TR=1 and Point(X Screen(X Mouse),Y Screen(Y Mouse))<>0 : Bell(70) : Wait 15 : End If 
  484.       If Mouse Key<>1 Then OX=X Screen(X Mouse) : OY=Y Screen(Y Mouse)
  485.       If Mouse Key=1
  486.          If Z<>0 and PF=0
  487.          LX=X Hard(OX-388) : LY=OY-131 : XL=X Hard(OX+388) : YL=OY+219
  488.          Limit Mouse LX,LY To XL,YL : PF=1 : Ink 1
  489.       End If 
  490.       X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  491.       Do 
  492.       If M=1
  493.       Rem *Re-draw Line If Mouse Has Moved*
  494.       If Z=0 : Ink IK : End If 
  495.       If COM=11 or COM=3 and LCS>0 : Draw OX,OY To X,Y : M=0 : End If 
  496.       If COM<>11 and SH=0 and LCS=0 or COM<>3 and SH=0 and LCS>0 : Box OX,OY To X,Y : M=0 : End If 
  497.       If COM<>11 and SH=1 and LCS=0 or COM<>3 and SH=1 and LCS>0 : R1=Abs(OX-X)+1 : Circle OX,OY,R1 : M=0 : End If 
  498.       If COM<>11 and SH=2 and LCS=0 or COM<>3 and SH=2 and LCS>0 : R1=Abs(OX-X)+1 : R2=Abs(OY-Y)+1 : Ellipse OX,OY,R1,R2 : M=0 : End If 
  499.       End If 
  500.       Rem *If Mouse should Move Blankout Old Line* 
  501.       If X<>X Screen(X Mouse) or Y<>Y Screen(Y Mouse)
  502.       Wait Vbl 
  503.       F=0 : MOVESCR
  504.       If CO=1 : CO_ORS : End If 
  505.       X=X Screen(X Mouse) : Y=Y Screen(Y Mouse) : M=1
  506.       End If 
  507.       Rem *Lay Line For Good When Mouse Key Releast* 
  508.       If Mouse Key<>1
  509.       F=0 : MOVESCR
  510.       If COM=11 and M<2 or COM=3 and LCS>0 and M<2 : Draw OX,OY To X,Y : M=0 : End If 
  511.       If COM<>11 and SH=0 and M<2 and LCS=0 or COM<>3 and SH=0 and M<2 and LCS>0 : Box OX,OY To X,Y : M=0 : End If 
  512.       If COM<>11 and SH=1 and M<2 and LCS=0 or COM<>3 and SH=1 and M<2 and LCS>0 : R1=Abs(OX-X)+1 : Circle OX,OY,R1 : M=0 : End If 
  513.       If COM<>11 and SH=2 and M<2 and LCS=0 or COM<>3 and SH=2 and M<2 and LCS>0 : R1=Abs(OX-X)+1 : R2=Abs(OY-Y)+1 : Ellipse OX,OY,R1,R2 : M=0 : End If 
  514.          If Z=-1
  515.          If X>OX : GX=OX : XG=X Else GX=X : XG=OX : End If 
  516.          If Y>OY : GY=OY : YG=Y Else GY=Y : YG=OY : End If 
  517.          If XG<640 : Inc XG : End If 
  518.          If YG<256 : Inc YG : End If 
  519.          GF=1 : F=0 : MOVESCR : Swap BF,BFH : BF=1
  520.          Gosub LIM1
  521.          If TW=11 or TW=12 : Swap TW,WT : End If 
  522.          RUB=0 : Change Mouse 1 : MP=1 : Ink IK : Pop Proc
  523.          End If 
  524.       If M=2 : M=0 : End If 
  525.       Exit 
  526.       End If 
  527.       Loop 
  528.       End If 
  529.       F=1 : MOVESCR
  530.       OX=X Screen(X Mouse) : OY=Y Screen(Y Mouse)
  531.       If Mouse Zone=1 and L=1 Then Goto ZOIN
  532. '------------------------------------------------------------------- 
  533.       L=0 : If Mouse Zone=1 and O=0 Then Goto MZON
  534.       If Key State(89)=True Then J=2 : ICON_BAR
  535.       If Mouse Key=2 and O=1 Then Bob Off 1 : MENUCON
  536.       If Mouse Key=2 Then J=1 : ICON_BAR : MENUCON
  537.       If Mouse Key<>2 and J=1 and O=1 Then ICON_BAR : J=0
  538.          If GF=1 Then Pop Proc
  539.       If Key State(68)=-1 and GF=0
  540.       If CF=0
  541.       Change Mouse 1 : MP=1 : End If 
  542.       If Z=0 : Swap BF,ZIRO : End If 
  543.       If BF=1 or Z=-1 : Hide On : HF=0 : End If 
  544.       Z=0 : COM=0 : FH=0 : Pop Proc
  545.       End If 
  546.       If GF=1
  547.       Change Mouse 1 : MP=1 : Swap BF,ZIRO : Pop Proc
  548.       End If 
  549.       If Z>0 : CF=1 : End If 
  550.       CHSMS
  551.       While Key State(79)=-1 or Key State(78)=-1 or Key State(76)=-1 or Key State(77)=-1
  552.       If Key State(79)=-1 and SCX>0 : F=1 : MOVESCR : Add SCX,-40 : Q=1 : End If 
  553.       If Key State(78)=-1 and SCX<640 : F=1 : MOVESCR : Add SCX,40 : Q=1 : End If 
  554.       If Key State(76)=-1 and SCY>0 : F=1 : MOVESCR : Add SCY,-16 : Q=1 : End If 
  555.       If Key State(77)=-1 and SCY<256 : F=1 : MOVESCR : Add SCY,16 : Q=1 : End If 
  556.       If Q=1 Then F=0 : MOVESCR : Q=0
  557.       Wend : L=0
  558.       Loop : If Z=0 Then Swap BF,ZIRO : Rem bf=bob on flag if it =0 then there is no bob at mouse coors
  559. End Proc
  560. Procedure TEXP
  561.       F=1 : MOVESCR : MP=2
  562.       VAU$="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789!�$%^&*()-_=+[]'~;:#@,<.>/\|?"+Chr$(34)
  563.       Bob Off 1 : Bell(50) : Gr Writing 0 : Ink IK : Z=0 : GF=0
  564.       If FH=1 Then FH=0 : Swap LAB$,LAH$ : LAH$="" : Show On : HF=1 : Goto FROM
  565. LABE: Wait Vbl : Window 1 : LW=1
  566.       Paper 3 : Pen 1 : Clw : Title Top "Electro Cad V1.2"
  567.       Locate 1,1 : Print "Enter Label"
  568.       Clear Key 
  569.       Locate 1,3 : Print "_" : X=1 : Y=3 : LAB$=""
  570. '-------------------------Input Routine------------------------- 
  571.       Change Mouse 1
  572. Repeat 
  573.       If GF=1 Then F=0 : MOVESCR : Pop Proc
  574.       CR$=Inkey$
  575.       If Len(CR$)=1 and Len(LAB$)<80
  576.       If Instr(VAU$,CR$)>0 or Instr(Lower$(VAU$),CR$)>0
  577.       If X=1 : Locate 29,Y-1 : Print " " : End If 
  578.       LAB$=LAB$+CR$
  579.       Locate X,Y : Print CR$;"_"; : Inc X
  580.       If X>28 : X=1 : Inc Y : End If 
  581.       End If : End If 
  582.       If X+Y>4
  583.       If Key State(65)=-1
  584.       Wait 7 : Dec X
  585.       If X=0 : Locate 1,Y : Print " " : X=29 : Dec Y : End If 
  586.       Locate X,Y : Print "_ " : LAB$=Left$(LAB$,Len(LAB$)-1)
  587.       End If : End If 
  588.       If Mouse Key=2 and J<>2 Then J=1 : ICON_BAR : MENUCON
  589.       If Mouse Key<>2 and J=1 and O=1 Then ICON_BAR : Paper 3 : Pen 1 : J=0
  590.       If Z>0 Then CF=1
  591.       If Mouse Zone=1 and Mouse Key
  592.       N=Int((X Screen(X Mouse)-9)/8)
  593.       If N<1 : N=0 Else ZQ=1 : End If 
  594.       COM=SI(N) : LAB$="" : MP=1 : CF=0 : FH=0 : Gr Writing 1
  595.       Pop Proc : End If 
  596.       CHSMS
  597. Until CR$=Chr$(13)
  598. '--------------------------------------------------------------- 
  599.       Wait Vbl : F=0 : MOVESCR
  600.       If Len(LAB$)=0 or Instr(Chr$(13),CR$)=0
  601.       Change Mouse 1 : MP=1 : CF=0 : COM=0 : LW=0 : Pop Proc : End If : Rem bf=0:gf=0
  602.       Change Mouse MP : LW=0
  603.       Wait 15
  604.       If LAB$="AQUATAR" : Direct : End If 
  605. FROM: Text X Screen(X Mouse),Y Screen(Y Mouse)+3,LAB$
  606.       Repeat 
  607.       Ink IK
  608.       TX=X Screen(X Mouse) : TY=Y Screen(Y Mouse)
  609.       If Mouse Zone=1
  610.       Change Mouse 1
  611.       While Mouse Zone=1
  612.       Rem Wait 5 
  613.       If Mouse Key=1 or Mouse Key=2 : MP=1 : CF=0 : FH=0 : Gr Writing 1 : Pop Proc : End If 
  614.       Wend 
  615.       Change Mouse MP
  616.       End If 
  617. '--------------------------------------------------------------------
  618.       If GF=1 Then F=0 : MOVESCR : Pop Proc
  619.       If Key State(68)=-1
  620.       F=0 : MOVESCR : LAB$="" : Change Mouse 1 : MP=1 : COM=0 : CF=0 : FH=0 : LW=0 : Gr Writing 1 : Pop Proc
  621.       End If 
  622.       If Key State(89)=True Then J=2 : ICON_BAR
  623.       If Mouse Key=2 and O=1 Then Swap LAB$,LAH$ : F=0 : MOVESCR : MENUCON
  624.       If Mouse Key=2 Then Swap LAB$,LAH$ : J=1 : F=0 : MOVESCR : ICON_BAR : MENUCON
  625.       If Mouse Key<>2 and J=1 and O=1
  626.       ICON_BAR : J=0
  627.       If Z=0 : Swap LAB$,LAH$ : LAH$="" : End If 
  628.       Text X Screen(X Mouse),Y Screen(Y Mouse)+3,LAB$
  629.       End If 
  630.       If Z>0 Then CF=1
  631.       CHSMS
  632.       While Key State(79)=-1 or Key State(78)=-1 or Key State(76)=-1 or Key State(77)=-1
  633.       If Key State(79)=-1 Then Add SCX,-40 : Q=1 : If SCX<0 Then SCX=0 : Q=0
  634.       If Key State(78)=-1 Then Add SCX,40 : Q=1 : If SCX>640 Then SCX=640 : Q=0
  635.       If Key State(76)=-1 Then Add SCY,-16 : Q=1 : If SCY<0 Then SCY=0 : Q=0
  636.       If Key State(77)=-1 Then Add SCY,16 : Q=1 : If SCY>256 Then SCY=256 : Q=0
  637.       If Q=1 Then F=0 : MOVESCR : Text TX,TY,LAB$ : Q=0
  638.       Wend : L=0
  639. '--------------------------------------------------------------------
  640.       If TX-X Screen(X Mouse)<>0 or TY-Y Screen(Y Mouse)<>0
  641.       F=0 : MOVESCR
  642.       TX=X Screen(X Mouse) : TY=Y Screen(Y Mouse)
  643.       Text TX,TY+3,LAB$
  644.       End If 
  645.       Until Mouse Key=1
  646.       If Mouse Zone=0 Then F=1 : MOVESCR
  647.       Goto LABE
  648. End Proc
  649. Procedure RUBER
  650.       RUB=1 : BF=1 : C=0
  651.       Ink 0 : Bell(50)
  652. End Proc
  653. LIM1: Limit Mouse 128,44 To 448,299 : Return 
  654. LIM2: Limit Mouse 312,82 To 423,162 : Return 
  655. BOOX: Ink 0,, : Box 377,106 To 486,121 : Box 378,106 To 485,121
  656.       Box 490,106 To 598,121 : Box 491,106 To 597,121 : Ink IK,,
  657.       Return 
  658. Procedure WMOU
  659.    Ink 3
  660.    Bar 399,55 To 412,119
  661.    Bar 444,55 To 457,119
  662.    Bar 489,55 To 502,119
  663.    RGB$=Hex$(Colour(CL)) : RGB$=Right$(RGB$,Len(RGB$)-1)
  664.    While Len(RGB$)<3
  665.    RGB$="0"+RGB$ : Wend 
  666.    R=Abs(((Val("$"+Mid$(RGB$,1,1)))-15)*4)+55
  667.    G=Abs(((Val("$"+Mid$(RGB$,2,1)))-15)*4)+55
  668.    B=Abs(((Val("$"+Mid$(RGB$,3,1)))-15)*4)+55
  669.    Ink 2
  670.    Bar 399,R To 412,R+4
  671.    Bar 444,G To 457,G+4
  672.    Bar 489,B To 502,B+4
  673.    Ink 1,3 : Text 552,107,"$"+RGB$
  674.    While Mouse Key=1 : Wend 
  675. End Proc
  676. Procedure DEBOX
  677.       Ink 3
  678.       Box 515,52 To 551,72
  679.       Box 560,52 To 596,72
  680.       Box 515,77 To 551,97
  681.       Box 560,77 To 596,97
  682.       Ink 1
  683. End Proc
  684. Procedure TRASH
  685.    Menu Off : Bell(50) : F=1 : MOVESCR
  686.    If Choice(2)=1
  687.    Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  688.    Gosub LIM2
  689.    YN$(0)=".............No "
  690.    YN$(1)=".............Yes"
  691.    Pen 2 : For X=0 To 3
  692.    P$(X)="Clear Page"+Str$(X+1)
  693.    Locate 1,X+2 : Print P$(X)+YN$(1)
  694.    Next 
  695.    D$="Clear Screen"
  696.    WIN(29,2)=1 : WIN(29,3)=1 : WIN(29,4)=1 : WIN(29,5)=1
  697.    HILIGHT
  698.    If WC=5
  699.    If WIN(29,2)=1 : Screen 1 : Cls 0 : End If 
  700.    If WIN(29,3)=1 : Screen 2 : Cls 0 : End If 
  701.    If WIN(29,4)=1 : Screen 3 : Cls 0 : End If 
  702.    If WIN(29,5)=1 : Screen 4 : Cls 0 : End If 
  703.    Screen 0
  704.    If COM=14 : Ink 0 Else Ink IK : End If 
  705.    End If 
  706. Else 
  707.    Gosub LIM2
  708.    YN$(0)=".............No "
  709.    YN$(1)=".............Yes"
  710.    YN$(2)=".............N/A"
  711.    WIN(29,2)=1 : WIN(29,3)=1 : WIN(29,4)=1 : WIN(29,5)=1
  712.    Clear Key 
  713.    F$=Fsel$("*.Elec","","Erase a Schematic")
  714.    If F$="" : F$="Quit" : End If 
  715.    F=Instr(F$,".Elec")
  716.    If F<1 or Len(F$)-F>4 or Exist(F$)=0
  717.       Gosub LIM1
  718.       F=0 : MOVESCR : Ink IK,,
  719.       Screen 0
  720.       Pop Proc
  721.    End If 
  722.    Open In 1,F$
  723.    For X=2 To 5
  724.    Input #1,WIN(29,X)
  725.    If WIN(29,X)=0 : WIN(29,X)=2 : End If 
  726.    Next : Close 1 : Screen 0
  727.    ALL=WIN(29,2)+WIN(29,3)+WIN(29,4)+WIN(29,5)
  728.    Gosub LIM2
  729.    Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  730.    Pen 2 : For X=0 To 3
  731.    P$(X)="Erase Page"+Str$(X+1)
  732.    If WIN(29,X+2)=1
  733.       Locate 1,X+2 : Print P$(X)+YN$(1)
  734.    Else 
  735.       Locate 1,X+2 : Print P$(X)+YN$(2)
  736.    End If 
  737.    Next : D$="Erase Schem."
  738.    HILIGHT
  739.    If WC=5
  740.    F$=Left$(F$,Len(F$)-5)
  741.    If WIN(29,2)=1 and Exist(F$+"_1.Iff")=-1 : Kill F$+"_1.Iff" : End If 
  742.    If WIN(29,3)=1 and Exist(F$+"_2.Iff")=-1 : Kill F$+"_2.Iff" : End If 
  743.    If WIN(29,4)=1 and Exist(F$+"_3.Iff")=-1 : Kill F$+"_3.Iff" : End If 
  744.    If WIN(29,5)=1 and Exist(F$+"_4.Iff")=-1 : Kill F$+"_4.Iff" : End If 
  745.    If WIN(29,2)+WIN(29,3)+WIN(29,4)+WIN(29,5)=ALL
  746.    Kill F$+".Elec"
  747.    Else 
  748.    Open Out 1,F$+".Elec"
  749.    For X=2 To 5
  750.    If WIN(29,X)=2 : WIN(29,X)=1 : End If 
  751.    Print #1, Not WIN(29,X)-2
  752.    Next : Close 1
  753.    End If 
  754.    End If 
  755.    End If 
  756.    Gosub LIM1
  757.    F=0 : MOVESCR
  758.    Screen 0
  759.    If COM=14 : Ink 0 Else Ink IK : End If 
  760. End Proc
  761. Procedure LOD
  762.    Menu Off : Bell(50) : F=1 : MOVESCR
  763.    Gosub LIM2
  764.    YN$(0)="..............No "
  765.    YN$(1)="..............Yes"
  766.    YN$(2)="..............N/A"
  767.    WIN(29,2)=1 : WIN(29,3)=1 : WIN(29,4)=1 : WIN(29,5)=1
  768.    Clear Key 
  769.    F$=Fsel$("*.Elec","","Load a Schematic")
  770.    If F$="" : F$="Quit" : End If 
  771.    F=Instr(F$,".Elec")
  772.    If F<1 or Len(F$)-F>4 or Exist(F$)=0
  773.       Gosub LIM1
  774.       F=0 : MOVESCR : Ink IK,,
  775.       Screen 0
  776.       Pop Proc
  777.    End If 
  778.    Open In 1,F$
  779.    For X=2 To 5
  780.    Input #1,WIN(29,X)
  781.    If WIN(29,X)=0 Then WIN(29,X)=2
  782.    Next : Close 1 : Screen 0
  783.    Gosub LIM2
  784.    Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  785.    Pen 2 : For X=0 To 3
  786.    P$(X)="Load Page"+Str$(X+1)
  787.    If WIN(29,X+2)=1
  788.       Locate 1,X+2 : Print P$(X)+YN$(1)
  789.    Else 
  790.       Locate 1,X+2 : Print P$(X)+YN$(2)
  791.    End If 
  792.    Next : D$="Load  Screen"
  793.    HILIGHT
  794.    For X=2 To 5
  795.    If WIN(29,X)=2 : WIN(29,X)=0 : End If 
  796.    Next 
  797.    If WIN(29,2)+WIN(29,3)+WIN(29,4)+WIN(29,5)=0 : WC=6 : End If 
  798.    If WC=5
  799.    F$=Left$(F$,Len(F$)-5)
  800.    If WIN(29,2)=1 and Exist(F$+"_1.Iff")=-1 : Screen 1 : Load Iff F$+"_1.Iff" : End If 
  801.    If WIN(29,3)=1 and Exist(F$+"_2.Iff")=-1 : Screen 2 : Load Iff F$+"_2.Iff" : End If 
  802.    If WIN(29,4)=1 and Exist(F$+"_3.Iff")=-1 : Screen 3 : Load Iff F$+"_3.Iff" : End If 
  803.    If WIN(29,5)=1 and Exist(F$+"_4.Iff")=-1 : Screen 4 : Load Iff F$+"_4.Iff" : End If 
  804.    Screen 0
  805.    X=2 : Repeat 
  806.    PAL=WIN(29,X) : Inc X
  807.    Until PAL=1
  808.    Get Palette X-2
  809.    BG=Colour(0) : Screen 7 : Colour 0,BG : Screen 0
  810.    End If 
  811.    Gosub LIM1
  812.    F=0 : MOVESCR
  813.    If COM=14 : Ink 0 Else Ink IK : End If 
  814. End Proc
  815. Procedure SAV
  816. DEMO
  817. End Proc
  818. Procedure PRIN
  819. DEMO
  820. End Proc
  821. Procedure MOVE
  822. If MU=1 Then Pop Proc
  823. Bell(50) : Menu Off : F=1 : MOVESCR
  824. Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  825. Locate ,2 : Centre "Use Cursor Keys to"
  826. Locate ,3 : Centre "Position Your Schematic"
  827. Locate ,5 : Centre "Press Left Mouse Button"
  828. Locate ,6 : Centre "to Comence"
  829. Locate ,8 : Centre "Pess Enter When Done"
  830. Repeat : Until Mouse Key=1
  831. F=0 : MOVESCR
  832. Repeat 
  833. While Key State(76)=-1 : Rem scrol up 
  834.    Screen Copy 1,0,0,640,8 To 5,0,0
  835.    Screen Copy 2,0,0,640,8 To 5,0,8
  836.    Screen Copy 3,0,0,640,8 To 5,0,16
  837.    Screen Copy 4,0,0,640,8 To 5,0,24
  838.    Screen Copy 1,0,8,640,256 To 1,0,0 : Screen Copy 5,0,16,640,24 To 1,0,248
  839.    Screen Copy 2,0,8,640,256 To 2,0,0 : Screen Copy 5,0,24,640,32 To 2,0,248
  840.    Screen Copy 3,0,8,640,256 To 3,0,0 : Screen Copy 5,0,0,640,8 To 3,0,248
  841.    Screen Copy 4,0,8,640,256 To 4,0,0 : Screen Copy 5,0,8,640,16 To 4,0,248
  842.    F=0 : MOVESCR
  843. Wend 
  844. While Key State(77)=-1 : Rem scrol down 
  845.    Screen Copy 1,0,248,640,256 To 5,0,0
  846.    Screen Copy 2,0,248,640,256 To 5,0,8
  847.    Screen Copy 3,0,248,640,256 To 5,0,16
  848.    Screen Copy 4,0,248,640,256 To 5,0,24
  849.    Screen Copy 1,0,0,640,248 To 1,0,8 : Screen Copy 5,0,16,640,24 To 1,0,0
  850.    Screen Copy 2,0,0,640,248 To 2,0,8 : Screen Copy 5,0,24,640,32 To 2,0,0
  851.    Screen Copy 3,0,0,640,248 To 3,0,8 : Screen Copy 5,0,0,640,8 To 3,0,0
  852.    Screen Copy 4,0,0,640,248 To 4,0,8 : Screen Copy 5,0,8,640,16 To 4,0,0
  853.    F=0 : MOVESCR
  854. Wend 
  855. While Key State(79)=-1 : Rem scrol left 
  856.    Screen Copy 1,0,0,16,256 To 5,0,0
  857.    Screen Copy 2,0,0,16,256 To 5,16,0
  858.    Screen Copy 3,0,0,16,256 To 5,32,0
  859.    Screen Copy 4,0,0,16,256 To 5,48,0
  860.    Screen Copy 1,16,0,640,256 To 1,0,0 : Screen Copy 5,16,0,32,256 To 1,624,0
  861.    Screen Copy 2,16,0,640,256 To 2,0,0 : Screen Copy 5,0,0,16,256 To 2,624,0
  862.    Screen Copy 3,16,0,640,256 To 3,0,0 : Screen Copy 5,48,0,64,256 To 3,624,0
  863.    Screen Copy 4,16,0,640,256 To 4,0,0 : Screen Copy 5,32,0,48,256 To 4,624,0
  864.    F=0 : MOVESCR
  865. Wend 
  866. While Key State(78)=-1 : Rem scrol right
  867.    Screen Copy 1,624,0,640,256 To 5,0,0
  868.    Screen Copy 2,624,0,640,256 To 5,16,0
  869.    Screen Copy 3,624,0,640,256 To 5,32,0
  870.    Screen Copy 4,624,0,640,256 To 5,48,0
  871.    Screen Copy 1,0,0,624,256 To 1,16,0 : Screen Copy 5,16,0,32,256 To 1,0,0
  872.    Screen Copy 2,0,0,624,256 To 2,16,0 : Screen Copy 5,0,0,16,256 To 2,0,0
  873.    Screen Copy 3,0,0,624,256 To 3,16,0 : Screen Copy 5,48,0,64,256 To 3,0,0
  874.    Screen Copy 4,0,0,624,256 To 4,16,0 : Screen Copy 5,32,0,48,256 To 4,0,0
  875.    F=0 : MOVESCR
  876. Wend 
  877. Until Key State(68)=-1
  878. Screen 5 : Cls 0 : Screen 0
  879. Ink IK : Wait 15
  880. End Proc
  881. Procedure CHANGE
  882. Bell(50)
  883. For X=1 To 5
  884. If Choice(2)=X : LIK=IK : IK=X-1 : BOCOL
  885. 'If GF=0 : SF=0 : End If : BOCOL 
  886. End If 
  887. Next 
  888. End Proc
  889. Procedure SHAPE
  890. Bell(50)
  891. For X=1 To 3
  892. If Choice(2)=X Then SH=X-1
  893. Next 
  894. End Proc
  895. Procedure SYMBOL
  896.    Menu Off 
  897.    CH=Choice(2) : If CH=3 or CH=4 or CH=5 Then GF=0
  898.    On Choice(2) Proc HFLIP,VFLIP
  899.    If Choice(2)=3
  900. '---------------Check is I# a Even Number------------- 
  901.    If LR=0 : I#=LB Else I#=LR : LB=LR : LR=0 : End If 
  902.    If Instr(Str$(I#/2),".")
  903.    I#=I#-1 Else I#=I#+1
  904.    End If : LB=I# : BOCOL : FX=0 : End If 
  905. 'Load custom here(optin 4) 
  906.    If Choice(2)=4
  907.    Clear Key 
  908.    CS$=Fsel$("*.Cus","","Load a Custom Libaray")
  909.    Screen 0
  910.    If CS$="" : Pop Proc : End If 
  911.    F=Instr(CS$,".")
  912.    If F>0 : CS$=Left$(CS$,F-1) : End If 
  913.    If Exist(CS$+".Cus")=0 or Exist(CS$+".Abk")=0 : Screen 0 : Pop Proc : End If 
  914.    Erase 1
  915.    Open In 1,CS$+".Cus"
  916.    Input #1,LCS
  917.    If LCS<1 : Close 1 : Load CS$ : Pop Proc : End If 
  918.    For X=0 To LCS-1
  919.    Input #1,CUS$(X)
  920.    Next 
  921.    Input #1,CT$
  922.    Close 1 : If RUB=0 : BF=0 : End If 
  923.    I#=0 : Z=0 : BF=0 : FX=0
  924.    Load CS$+".Abk",1
  925.    Screen 7 : Load Iff "ElectroCad:ElecAcs/CustomBar.Iff" : Screen 0
  926.    For X=0 To 69 : SI(X)=Val("$"+Mid$(SC$,X+1,1)) : Next 
  927.    CS$=CS$+".Abk"
  928.    If COM>0 and COM<11 : COM=1 : End If 
  929.    If COM>10 : Add COM,-8 : End If 
  930.    End If 
  931. '----------------------------------------------------- 
  932.    If Choice(2)=5 : Z=2 : End If 
  933.    If Choice(2)=6
  934.       DEMO
  935.    End If 
  936.    If Choice(2)=7 and Z=-1
  937.       DEMO
  938.    End If 
  939. End Proc
  940. Procedure ZOM
  941.    Menu Off : Bell(50)
  942.    If Choice(2)=1 : Z=1 : O=0 : End If 
  943.    If Choice(2)=2 : RST=1 : End If 
  944. End Proc
  945. Procedure PREFS
  946. Bell(50)
  947.    If Choice(2)=1
  948.       If CO=1 : CO=0 : Else CO=1 : End If 
  949.    End If 
  950.    If Choice(2)=2
  951.       If TR=1 : TR=0 : Else TR=1 : End If 
  952.    End If 
  953.    If Choice(2)=3
  954.       Menu Off : M=2 : Gr Writing 1
  955.       For N=0 To 3 : CLR(N)=Colour(N) : Next 
  956.       Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  957.       Ink 2,3, : Text 401,50,"R" : Text 446,50,"G" : Text 492,50,"B"
  958.       Gosub LIM2 : Ink 1,,
  959.       Box 398,54 To 413,120 : Set Zone 2,398,54 To 413,120
  960.       Box 443,54 To 458,120 : Set Zone 3,443,54 To 458,120
  961.       Box 488,54 To 503,120 : Set Zone 4,488,54 To 503,120
  962.       Ink 0 : Bar 518,54 To 548,70 : Set Zone 5,518,54 To 548,70
  963.       Ink 1 : Bar 563,54 To 593,70 : Set Zone 6,563,54 To 593,70
  964.       Ink 2 : Bar 518,79 To 548,95 : Set Zone 7,518,79 To 548,95
  965.       Ink 0 : Box 563,79 To 593,95 : Set Zone 8,563,79 To 593,95
  966.       Ink 1 : Text 518,107,"RGB:" : OK$="OK." : RS$="Reset"
  967.       Set Zone 9,518,113 To 554,118 : Set Zone 10,574,113 To 590,118
  968. '----------------------------------------------------------------
  969.       Repeat 
  970.       MZ=Mouse Zone
  971.       If MU=1 or Mouse Key=1 and MZ=5 : DEBOX : Box 515,52 To 551,72 : CL=0 : WMOU : End If 
  972.       If Mouse Key=1 and MZ=6 : DEBOX : Box 560,52 To 596,72 : CL=1 : WMOU : End If 
  973.       If Mouse Key=1 and MZ=7 : DEBOX : Box 515,77 To 551,97 : CL=2 : WMOU : End If 
  974.       If Mouse Key=1 and MZ=8 : DEBOX : Box 560,77 To 596,97 : CL=3 : WMOU : End If 
  975.       If MZ>1 and MZ<5
  976.       For X=0 To 2 : RGB(X)=Val("$"+Mid$(RGB$,X+1,1)) : Next 
  977.       Y1=RGB(MZ-2) : BPY=Abs((RGB(MZ-2)-15)*4)+55
  978.       While Mouse Key=1 and Mouse Zone=MZ
  979.       BPX=354+((MZ-1)*45)
  980.       If Y1<>RGB(MZ-2)
  981.       Ink 3 : Bar BPX,55 To BPX+13,119
  982.       RGB(MZ-2)=Y1 : BPY=Abs((Y1-15)*4)+55
  983.       Ink 2 : Bar BPX,BPY To BPX+13,BPY+4
  984.       CLR(CL)=(RGB(0)*256)+(RGB(1)*16)+RGB(2) : Colour CL,CLR(CL)
  985.       RGB$=Hex$(CLR(CL)) : RGB$=Right$(RGB$,Len(RGB$)-1)
  986.       While Len(RGB$)<3
  987.       RGB$="0"+RGB$ : Wend 
  988.       Ink 1,3 : Text 552,107,"$"+RGB$
  989.       End If 
  990.       Y1=Abs(((Y Screen(Y Mouse)-55)/4)-15)
  991.       Wend 
  992.       End If 
  993.       If MZ=9
  994.       Ink 3,1 : Text 518,120,RS$ : FG=1
  995.       If Mouse Key=1
  996.       CLR(CL)=BCL(CL) : Colour CL,CLR(CL) : WMOU
  997.       End If 
  998.       End If 
  999.       If MZ<>9 and FG=1 or MU=1
  1000.       Ink 1,3 : Text 518,120,RS$ : FG=0
  1001.       End If 
  1002.       If MZ=10
  1003.       Ink 3,1 : Text 574,120,OK$ : FG=2
  1004.       End If 
  1005.       If MZ<>10 and FG=2 or MU=1
  1006.       Ink 1,3 : Text 574,120,OK$ : FG=0 : MU=0
  1007.       End If 
  1008.       Until Mouse Key=1 and Mouse Zone=10
  1009.       Reset Zone 
  1010.       Gosub LIM1
  1011. '----------------------------------------------- 
  1012.       F=0 : If Z=1 : STORSCR
  1013.       Else MOVESCR : End If 
  1014. '----------------------------------------------- 
  1015.       BG=Colour(0) : Screen 7 : Colour 0,BG
  1016.       For N=6 To 0 Step -1
  1017.       Screen N : Get Palette 0
  1018.       Next 
  1019.       While Mouse Key=1 : Wend 
  1020.       If COM=13 : Gr Writing 0 : End If 
  1021.       If COM=14 : Ink 0 Else Ink IK : End If 
  1022.    End If 
  1023.    If Choice(2)=4 and Z=0
  1024.       DEMO
  1025.    End If 
  1026.    If Choice(2)=5
  1027.       Menu Off : Bell(50) : F=1 : MOVESCR
  1028.       Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  1029.       Gosub LIM2
  1030.       Locate ,1 : Centre "Exit to Work Bench"
  1031.       Locate ,3 : Centre "Current Schematic Will"
  1032.       Locate ,5 : Centre "be LOST if it has"
  1033.       Locate ,7 : Centre "Not Been Saved!!"
  1034.       D$=" Work Bench "
  1035.       WIN(29,2)=3 : WIN(29,3)=3 : WIN(29,4)=3 : WIN(29,5)=3
  1036.       HILIGHT
  1037.       If WC=5 : Stop : End If 
  1038.       F=0 : MOVESCR
  1039.       If COM=14 : Ink 0 Else Ink IK : End If 
  1040.    End If 
  1041. End Proc
  1042. Procedure HILIGHT
  1043.    Pen 1 : Locate 2,9 : Print D$ : Locate 16,9 : Print C$
  1044.    Gosub BOOX : WC=0
  1045. '------------------------------------------------
  1046.    Repeat 
  1047.    If WIN(0,Y)>0 and WIN(0,Y)<5 and WIN(29,Y)<3 : YY=Y
  1048.    Paper 1 : Pen 2 : Locate 1,YY : Print P$(YY-2)+YN$(WIN(29,Y))
  1049.    If Mouse Key=1 and WIN(29,Y)<2
  1050.    E=WIN(29,Y) : E= Not E-2 : Locate 1,YY : Print P$(YY-2)+YN$(E)
  1051.    WIN(29,Y)=E : While Mouse Key=1 : Wend 
  1052.    End If 
  1053.    End If 
  1054.    Y=Y Text(Y Screen(Y Mouse))
  1055.    If YY-Y<>0 and WIN(0,YY)>0 and WIN(0,YY)<5
  1056.    Paper 3 : Pen 2 : Locate 1,YY : Print P$(YY-2)+YN$(WIN(29,YY))
  1057.    End If 
  1058.    If WIN(X,Y)=5 : YY=Y
  1059.    Paper 1 : Pen 3 : Locate 2,9 : Print D$
  1060.    End If 
  1061.    X=X Text(X Screen(X Mouse))
  1062.    If X>14 or YY<>Y and WIN(X,Y)<>5
  1063.    Paper 3 : Pen 1 : Locate 2,9 : Print D$
  1064.    End If 
  1065.    If WIN(X,Y)=6 : YY=Y
  1066.    Paper 1 : Pen 3 : Locate 16,9 : Print C$
  1067.    End If 
  1068.    X=X Text(X Screen(X Mouse))
  1069.    If X<15 or YY<>Y and WIN(X,Y)<>6
  1070.    Paper 3 : Pen 1 : Locate 16,9 : Print C$
  1071.    End If 
  1072.    If Mouse Key=1 and Y=9
  1073.    WC=WIN(X,Y) : While Mouse Key=1 : Wend 
  1074.    End If 
  1075.    Until WC=5 or WC=6
  1076. End Proc
  1077. Procedure ZOMIN
  1078.    If LW=1 Then F=0 Else F=1
  1079.    MOVESCR
  1080.    For MFO=0 To $F
  1081.    If MFO=7 Then MENON Else MENOFF
  1082.    Next 
  1083.    F=1 : MOVESCR : OE=1
  1084.    Bob Off 1 : Hide On : HF=0 : Ink 1 : MU=1 : Swap RUB,OE
  1085. '--------------------------------------------------------- 
  1086.    Repeat 
  1087.    XX=X : YY=Y : X=X Screen(X Mouse) : Y=Y Screen(Y Mouse)
  1088.    Box X,Y To X+88,Y+42
  1089.    If XX<>X or YY<>Y
  1090.    Wait Vbl 
  1091.    F=0 : MOVESCR
  1092.    End If 
  1093.    If Key State(68)=-1
  1094.    F=0 : MOVESCR : Z=0 : O=1 : Swap RUB,OE : MU=0
  1095.    If RUB=1 : Ink 0 : End If 
  1096.    If BF=0 : Show On : HF=1 : End If 
  1097.    For MFO=0 To $F
  1098.    If MFO=7 or MFO=$E : MENOFF Else MENON : End If 
  1099.    Next 
  1100.    Pop Proc
  1101.    End If 
  1102.       While Key State(79)=-1 or Key State(78)=-1 or Key State(76)=-1 or Key State(77)=-1
  1103.       If Key State(79)=-1 Then Add SCX,-40 : Q=1 : If SCX<0 Then SCX=0 : Q=0
  1104.       If Key State(78)=-1 Then Add SCX,40 : Q=1 : If SCX>640 Then SCX=640 : Q=0
  1105.       If Key State(76)=-1 Then Add SCY,-16 : Q=1 : If SCY<0 Then SCY=0 : Q=0
  1106.       If Key State(77)=-1 Then Add SCY,16 : Q=1 : If SCY>256 Then SCY=256 : Q=0
  1107.       If Q=1 Then F=0 : MOVESCR : Text TX,TY,LAB$ : Q=0
  1108.       Wend : L=0
  1109.    Until Mouse Key=1
  1110. '--------------------------------------------------------- 
  1111.    Change Mouse 3 : Show On : HF=1
  1112.    F=0 : MOVESCR
  1113.    F=1 : STORSCR : Cls 0
  1114.    Screen Copy 5,X,Y,X+88,Y+42 To 0,10,107
  1115.    View : Zoom 0,10,107,98,149 To 0,112,2,640,254
  1116.    Limit Mouse 187,46 To 447,292 : RX=X : RY=Y
  1117.    Change Mouse 2 : MP=2
  1118.    Repeat 
  1119.       XX=X : YY=Y : XP=PX : YP=PY
  1120.       X=Int((X Screen(X Mouse)/6)*6)-2
  1121.       Y=Int((Y Screen(Y Mouse)/6)*6)+2
  1122.       PX=(X/6)-8 : PY=(Y/6)+107
  1123.       If XX<>X or YY<>Y or LY=1 or MU=1
  1124.       If LY=0 and MU=0
  1125.       Ink R : Bar XX,YY To XX+5,YY+5 : Plot XP,YP
  1126.       Else 
  1127.       LY=0 : End If 
  1128.       R=Point(X,Y)
  1129.       If IK=R : CC= Not IK-2
  1130.       Else CC=IK : End If 
  1131.       Ink CC : Bar X,Y To X+5,Y+5 : Plot PX,PY
  1132.       End If 
  1133.       If Mouse Key=1
  1134.       LY=1 : Ink IK : Bar X,Y To X+5,Y+5 : Plot PX,PY
  1135.       End If 
  1136.       If MU=1 : MU=0 : End If 
  1137.       If Mouse Key=2
  1138.       Ink R : Bar X,Y To X+5,Y+5 : Plot PX,PY : MENUCON
  1139.       Limit Mouse 187,46 To 447,292
  1140.       Ink IK : Bar X,Y To X+5,Y+5 : Plot PX,PY : End If 
  1141.    Until RST=1 or Key State(68)=-1
  1142.    Ink R : Bar X,Y To X+5,Y+5 : Plot PX,PY
  1143.    Screen Copy 0,10,107,98,149 To 5,RX,RY : Cls 0
  1144.    F=0 : MOVESCR
  1145.    Screen Copy 5,RX,RY,RX+88,RY+42 To 0,RX,RY
  1146. '-------------------------Restore--------------------
  1147.    F=1 : MOVESCR
  1148.    Screen 5 : Cls 0 : Screen 0
  1149.    MU=0 : Swap RUB,OE : Z=0 : RST=0 : O=1 : Ink IK
  1150.    Gosub LIM1
  1151.    If Len(LAB$)>0 : Goto S : End If 
  1152.    If BF<>0 or CF=0 : Hide On : HF=0 : End If 
  1153.    If CF=0 : Change Mouse 1 : MP=1 : End If 
  1154. S: CF=0
  1155.    If RUB=1 : Ink 0 : End If 
  1156.    For MFO=0 To $F
  1157.    If MFO=7 or MFO=$E Then MENOFF Else MENON
  1158.    Next 
  1159. End Proc
  1160. Procedure GRAB
  1161.    If LW=1 Then F=0 Else F=1
  1162.    MOVESCR
  1163.    MFO=$E : MENON
  1164.    MFO=$A : MENOFF
  1165.    TW=12
  1166.    Z=-1 : Swap SH,ZIO : Swap J,ZIR
  1167.    Swap COM,TW
  1168.    If Len(LAB$)>0 Then Swap LAB$,LAH$
  1169.    PECIL
  1170.    If XG>640 : XG=640 : End If 
  1171.    If YG>256 : YG=256 : End If 
  1172.    If GF=0 and TW=13 : Swap LAB$,LAH$ : LAH$="" : End If 
  1173.    If GF=1 : Erase 1 : Get Bob 1,GX,GY To XG,YG : Hide On : HF=0
  1174.    I#=1 : End If 
  1175.    Swap SH,ZIO : Swap J,ZIR : Swap COM,TW : Swap RUB,RBE
  1176. '   RUB=0
  1177.    If RUB=1 Then Hide On : HF=0
  1178.    If IK>1 Then BOCOL
  1179. End Proc
  1180. Procedure HFLIP
  1181. If Z=-1 : Change Mouse 3 : Show On : HF=1 : End If 
  1182. Screen 5 : Paste Bob 0,0,Hrev(I#)
  1183. BASE=Sprite Base(I#)
  1184. SXG=Deek(BASE)*16 : SYG=Deek(BASE+2) : POS=SXG
  1185. '-----------------------Start Scan------------------------   
  1186. Inc SXG : Inc SYG : Inc FX
  1187. If FX=2 Then FX=0
  1188. If LR=0 Then LR=LB
  1189. If GF=0 Then I#=300 : LB=I# : Rem last bob+1 
  1190. Get Bob 5,I#,0,0 To SXG,SYG : Hot Spot I#,FX,0
  1191. Cls 0 : Screen 0 : Rem FF=0 
  1192. If Z=-1 : Hide On : HF=0 : Change Mouse MP : End If 
  1193. End Proc
  1194. Procedure VFLIP
  1195. If Z=-1 : Change Mouse 3 : Show On : HF=1 : End If 
  1196. Screen 5 : Paste Bob 0,0,Vrev(I#)
  1197. BASE=Sprite Base(I#)
  1198. SXG=Deek(BASE)*16 : SYG=Deek(BASE+2) : POS=SYG
  1199. '-----------------------Start Scan-----------------------
  1200. Inc SXG : Inc SYG
  1201. If LR=0 Then LR=LB
  1202. If GF=0 Then I#=300 : LB=I# : Rem last bob+1 
  1203. Get Bob 5,I#,0,0 To SXG,SYG : Hot Spot I#,FX,0
  1204. Cls 0 : Screen 0 : RemFF=0
  1205. If Z=-1 : Hide On : HF=0 : Change Mouse MP : End If 
  1206. End Proc
  1207. Procedure DISKFULL
  1208.    Gosub LIM2
  1209.    Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0 : Ink 1
  1210.    Locate ,1 : Centre "Disk Operation Abandoned"
  1211.    Locate ,3 : Centre "Disk in drive "+Left$(F$,4)
  1212.    Locate ,4 : Centre "has insufficient space"
  1213.    Locate ,5 : Centre "to save current file."
  1214.    Locate ,7 : Centre "Press left mouse button"
  1215.    Locate ,8 : Centre "to continue."
  1216.    Wait 25 : Repeat : Until Mouse Key=1 : Ink IK
  1217.    F=0 : MOVESCR : Gosub LIM1
  1218.    Dir$="ElectroCad:"
  1219. End Proc
  1220. Procedure CUSDAT
  1221. Locate 1,9 : Print Space$(28)
  1222. Locate 1,9 : Print CUS$((I#/2)-1)
  1223. End Proc
  1224. Procedure COMDAT
  1225. Restore INDEX
  1226. For V=1 To 122 : Rem Number of name data statments    
  1227. Read IM,IND : If I#<IM Then Exit 
  1228. Next 
  1229. Restore NAME
  1230. For V=1 To IND
  1231. Read NAME$ : Next 
  1232. Locate 1,9 : Print Space$(28)
  1233. Locate 1,9 : Print NAME$
  1234. End Proc
  1235. Procedure DEMO
  1236. Menu Off : Bell(50) : F=1 : MOVESCR
  1237. Swap C,ZIRO : MU=1 : PWIND : Swap C,ZIRO : ZIRO=0
  1238. Gosub LIM2
  1239. For X=2 To 5 : WIN(29,X)=3 : Next 
  1240. D$="   Cancel   "
  1241. Locate ,1 : Centre "Sorry This Function Has"
  1242. Locate ,2 : Centre "Not Been Included In"
  1243. Locate ,3 : Centre "This Demo Version of"
  1244. Locate ,4 : Centre "Electro Cad."
  1245. Locate ,6 : Centre "See 'Read Me' Doc."
  1246. Locate ,7 : Centre "For More Details."
  1247. HILIGHT
  1248. Gosub LIM1
  1249. F=0 : MOVESCR
  1250. End Proc
  1251. '--------------------------------------------------------------------
  1252. INDEX:
  1253. Data 4,1,6,2,8,3,10,4,12,5,14,6,16,7,18,8,20,9,22,10,24,11,26,12,28,13,30,14
  1254. Data 32,15,34,16,36,17,38,18,40,19,42,20,44,21,46,22,48,23,50,24,52,25,54,26
  1255. Data 56,27,58,28,60,29,62,30,64,31,66,32,68,33,70,34,72,35,74,36,76,37,78,38
  1256. Data 80,39,82,40,84,41,86,42,88,43,90,44,92,45,94,46,96,47,98,48,100,49,102,50
  1257. Data 104,51,114,52,118,53,120,54,122,55,124,56,126,57,128,58,132,59,138,60,140,61
  1258. Data 146,62,148,63,150,64,156,65,158,66,160,67,162,68,164,69,166,70,168,71,170,72
  1259. Data 172,73,174,74,176,75,178,76,180,77,182,78,184,79,188,80,190,81,192,82
  1260. Data 194,83,196,84,198,85,200,86,202,87,204,88,206,89,208,90,210,91,212,92,214,93
  1261. Data 216,94,218,95,220,96,222,97,224,98,226,99,228,100,230,101,232,102,234,103
  1262. Data 236,104,238,105,240,106,242,107,244,108,246,109,248,110,250,111,252,112
  1263. Data 254,113,256,114,258,115,260,116,262,117,264,118,266,119,268,120,270,121,272,122
  1264. NAME:
  1265. Data "Resistor","Preset Resistor","Variable Resistor","Thermister","Non Polerised Capacitor"
  1266. Data "Electrolitic Capacitor","Preset Capacitor","Variable Capacitor","Fead Throw Capacitor"
  1267. Data "Diode","Zener Diode","Tunnel Diode","Varicap Diode","Thyristor","Diac","Triac"
  1268. Data "Bridge Rectifer","Supresed Bridge Rectifer","NPN Transistor","PNP Transistor"
  1269. Data "N Channel FET","P Channel FET","P Channel Insulated FET","N Channel Insulated FET"
  1270. Data "Twin Gated P Channel Ins.FET","Twin Gated N Channel Ins.FET","N Type Base Unijunction"
  1271. Data "P Type Base Unijunction","Operational Amplifier","Power Amplifier"
  1272. Data "3 Pin Voltage Regulator","NOT Gate (Inverter)","AND Gate (2 Inputs)"
  1273. Data "AND Gate (4 Inputs)","NAND Gate (2 Inputs)","NAND Gate (4 Inputs)"
  1274. Data "NAND Gate (8 Inputs)","NAND Gate (13 Inputs)","OR Gate (2 Inputs)","OR Gate (4 Inputs)"
  1275. Data "OR Gate (8 Inputs)","NOR Gate (2 Inputs)","NOR Gate (4 Inputs)","NOR Gate (8 Inputs)"
  1276. Data "Exclusive OR Gate","Exclusive NOR Gate","J-K/R-S Flip Flop","Inverting I/O"
  1277. Data "Light Direction Indicator","Light Dependant Resistor","Light Emiting Diode "
  1278. Data "LED/LCD Display","LED/LCD Dot Matrix Display","Lamp","Neon Lamp","Strobe/Beacon Lamp"
  1279. Data "Photo Diode","Photo Diac","Photo Transister","Air Wound Coil","Centre Tapped Air Wound Coil"
  1280. Data "Coil Wound on a Former","Centre Tapped Cuppeld Coil","Inductance Adjuster"
  1281. Data "Adjustable Inductor Coil","Audio Transformer","Mains Transformer"
  1282. Data "Push to Make Switch","Push to Brake Switch","Single Pole Single Throw"
  1283. Data "Single Pole Double Throw","Double Pole Double Throw","Single Pole Tripple Throw"
  1284. Data "Double Pole Tripple Throw","10 Way Rottery Switch","12 Way Rottery Switch"
  1285. Data "Double Pole 5 Way Rottery","Double Pole 6 Way Rottery","Dil Switch","Relay Contacts"
  1286. Data "Relay Coil","D.P.D.T Relay","Solder Joint","Not Connected Bridge","BNC / Phono Socket"
  1287. Data "BNC / Phono Plug","Mono Jack Socket","Mono Jack Plug","Stereo Jack Socket"
  1288. Data "Stereo Jack Plug","5 Pin Din Socket","5 Pin Din Plug","6 Pin Din Socket"
  1289. Data "6 Pin Din Plug","5 Way Edge Connector","10 Way O/I Port","9 Pin Female D Connector"
  1290. Data "9 Pin Male D Connector","15 Pin Female D Connector","15 Pin Male D Connector"
  1291. Data "23 Pin Female D Connector","23 Pin Male D Connector","25 Pin Female D Connector"
  1292. Data "25 Pin Male D Connector","Positive Terminal","Negative Terminal","Chassis"
  1293. Data "Earth","Single Battery Cell","Battery","Fuse","Aerial","Coax Cable","Crystal"
  1294. Data "Loud Speaker","Microphone","Ear Piece","Ultrasonic Transducer","Read / Write Tape Head"
  1295. Data "Erase Tape Head","Moving Coil Meter","Electric Motor"